<?php

/**
 * @name SBShop
 * @author Карпенко Алексей (tonatos@gmail.com)
 * @version 0.1
 *
 * @desription
 *
 * Электронный магазин для MODx
 *
 * Экшен модуля электронного магазина: Управление шаблонами параметров
 *
 */

class param_template_mode {

	protected $sModuleLink;
	protected $sMode;
	protected $sAct;
        protected $table;
	/**
	 * Конструктор
	 * @global <type> $modx
	 * @param <type> $sModuleLink
	 * @param <type> $sMode
	 * @param <type> $sAct
	 */
	public function __construct($sModuleLink, $sMode, $sAct = '') {
		global $modx;
		/**
		 * Устанавливаем режим менеджера
		 */
		$modx->sbshop->bManager = true;
		/**
		 * Записываем служебную информацию модуля, чтобы делать разные ссылки
		 */
		$this->sModuleLink = $sModuleLink;
		$this->sMode = $sMode;
		$this->sAct = $sAct;

                $this->table = $modx->getFullTableName("sbshop_param_templates");
                
		/**
		 * Обрабатываем заданное действие
		 */
		switch ($this->sAct) {
			case 'edit': case 'add':
                            $this->edit();
			break;

                        case 'delete':
                            $this->delete();
                            break;
                        case 'load_template':
                            $this->load_template();
                            break;

                        case 'add_template':
                            $this->add_template();
                            break;
                        
			default:
                            $this->show();
			break;
		}
		
	}

        function show(){
            global $modx;            
            $rs=$modx->db->select("*",$this->table);
            $rows = $modx->db->makeArray($rs);

            include(MODX_BASE_PATH."assets/extends/sbshop/modules/templates/param_template.show.tpl");
        }

        function edit(){
            global $modx;

            if (!empty($_POST)){
                $data = $_POST;
                
                $data['id'] = $data['id_template'];
                $data['name'] = trim($data['name']);
                $data['value'] = trim($data['value']);
                unset($data['id_template']);
                if (empty($data['name'])){
                    $message = "Введите название";
                }elseif (empty($data['value'])){
                    $message = "Введите значение";
                }else{
                    //все ok
                    $data['name'] = $modx->db->escape($data['name']);
                    $data['value'] = $modx->db->escape($data['value']);

                    if (empty($data['id'])){
                        $modx->db->insert($data,$this->table);
                    }else{
                        $modx->db->update($data,$this->table,"id=".$data['id']);
                    }

                    return $this->show();
                }



            }else{
                //Получаем данные
                if (isset($_GET['id_template'])){
                    $id_template = intval($_GET['id_template']);
                    if (!empty($id_template)){
                        $rs = $modx->db->select("*",$this->table,"id=$id_template");
                        $data = $modx->db->GetRow($rs);
                    }
                }
            }
            include(MODX_BASE_PATH."assets/extends/sbshop/modules/templates/param_template.edit.tpl");
        }


        function delete(){
            global $modx;

            $id_template = (int)$_GET['id_template'];

            if (!empty($id_template)){
                $modx->db->delete($this->table, "id=$id_template");
            }

            return $this->show();
        }

        function load_template(){
            global $modx;
            $id_template = (int)$_GET['id_template'];
            if (empty($id_template)) return;
            
            $rs=$modx->db->select("*",$this->table,"id=$id_template");
            $row = $modx->db->GetRow($rs);

            $values = explode("||",$row['value']);

            $s_template = $modx->sbshop->getModuleTemplate('prod');

            list($sPageTpl,$sBundlingTpl,$sOptionsTpl,$sOptionRowTpl,$attibutes_tpl,$attibutes_tpl_select) = explode('<!-- ### -->', $s_template);

            if (!empty($values)){
                $i=0;
                foreach ($values as $value){
                    
                    if (strpos($value,"==")!==false){

                        list($name,$options)=explode("==",$value);

                        if (!empty($options)){
                            $options_select = explode(",",$options);
                            if (count($options_select)>0){
                                $option = "";
                                foreach($options_select as $opt){
                                    $opt=htmlspecialchars($opt,ENT_QUOTES,"UTF-8");
                                    $option.="<option id='$opt'>$opt</option>";
                                }

                                echo str_replace(array("[+id+]","[+name+]","[+options+]"),array($i++,$name,$option),$attibutes_tpl_select);

                            }else{
                                echo str_replace(array("[+id+]","[+name+]","[+value+]"),array($i++,$value,""),$attibutes_tpl);
                            }

                        }else{
                            echo str_replace(array("[+id+]","[+name+]","[+value+]"),array($i++,$value,""),$attibutes_tpl);
                        }
                        


                        
                    }else{
                        echo str_replace(array("[+id+]","[+name+]","[+value+]"),array($i++,$value,""),$attibutes_tpl);
                    }
                }
            }

        }

        function add_template(){
            global $modx;
            $count = (int)$_GET['count'];

            $s_template = $modx->sbshop->getModuleTemplate('prod');
            list($sPageTpl,$sBundlingTpl,$sOptionsTpl,$sOptionRowTpl,$attibutes_tpl) = explode('<!-- ### -->', $s_template);
            echo str_replace(array("[+id+]","[+name+]","[+value+]"),array($count,"",""),$attibutes_tpl);
        }
}
?>
